package com.ruoyi.business.domain;

import java.math.BigDecimal;
import java.sql.Time;
import java.util.Date;
import java.util.List;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 每日车站对象 daily_train_station
 * 
 * @author ruoyi
 * @date 2025-03-06
 */
public class DailyTrainStation extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Long id;

    /** 日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date date;

    /** 车次编号 */
    @Excel(name = "车次编号")
    private String trainCode;

    /** 站序 */
    @Excel(name = "站序")
    private Long index;

    /** 站名 */
    @Excel(name = "站名")
    private String name;

    /** 站名拼音 */
    @Excel(name = "站名拼音")
    private String namePinyin;

    /** 进站时间 */
    @JsonFormat(pattern = "hh:mm:ss")
    @Excel(name = "进站时间", width = 30, dateFormat = "hh:mm:ss")
    private Time inTime;

    /** 出站时间 */
    @JsonFormat(pattern = "hh:mm:ss")
    @Excel(name = "出站时间", width = 30, dateFormat = "hh:mm:ss")
    private Time outTime;

    /** 停站时长 */
    @JsonFormat(pattern = "hh:mm:ss")
    @Excel(name = "停站时长", width = 30, dateFormat = "hh:mm:ss")
    private Time stopTime;

    /** 里程（公里）|从上一站到本站的距离 */
    @Excel(name = "里程", readConverterExp = "公=里")
    private BigDecimal km;

    /** 车次编号列表，用于批量查询 */
    private List<String> trainCodes;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setDate(Date date) 
    {
        this.date = date;
    }

    public Date getDate() 
    {
        return date;
    }
    public void setTrainCode(String trainCode) 
    {
        this.trainCode = trainCode;
    }

    public String getTrainCode() 
    {
        return trainCode;
    }
    public void setIndex(Long index) 
    {
        this.index = index;
    }

    public Long getIndex() 
    {
        return index;
    }
    public void setName(String name) 
    {
        this.name = name;
    }

    public String getName() 
    {
        return name;
    }
    public void setNamePinyin(String namePinyin) 
    {
        this.namePinyin = namePinyin;
    }

    public String getNamePinyin() 
    {
        return namePinyin;
    }
    public void setInTime(Time inTime)
    {
        this.inTime = inTime;
    }

    public Time getInTime()
    {
        return inTime;
    }
    public void setOutTime(Time outTime)
    {
        this.outTime = outTime;
    }

    public Time getOutTime()
    {
        return outTime;
    }
    public void setStopTime(Time stopTime)
    {
        this.stopTime = stopTime;
    }

    public Time getStopTime()
    {
        return stopTime;
    }
    public void setKm(BigDecimal km) 
    {
        this.km = km;
    }

    public BigDecimal getKm() 
    {
        return km;
    }

    public List<String> getTrainCodes() {
        return trainCodes;
    }

    public void setTrainCodes(List<String> trainCodes) {
        this.trainCodes = trainCodes;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("date", getDate())
            .append("trainCode", getTrainCode())
            .append("index", getIndex())
            .append("name", getName())
            .append("namePinyin", getNamePinyin())
            .append("inTime", getInTime())
            .append("outTime", getOutTime())
            .append("stopTime", getStopTime())
            .append("km", getKm())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .toString();
    }
}
